package com.bjpowernode.javase.exception;

public class ExceptionTest13 {
    public static void main(String[] args) {
        int retValue = m();
        System.out.println("retValue="+retValue);
    }

    /*
    java语法规则（有一些规则是不能被破坏的，一旦说了，就必须这么做）：
        java中右一条这样的规则：
            方法体中的代码必须遵循自上而下的执行顺序，这是亘古不变的。
        Java中还有一条语法规则：
            return语句一旦执行，方法必须结束，这也是亘古不变的。
     */
    public static int m(){
        int i = 100;
        try{
            //这行代码出现在int i = 100;的下面，所以最终结果必须返回100。
            //return还必须是最后执行的，一旦执行整个方法结束。
            //这个return语句一定是最后执行的。
            return i;
        }finally {
            i++;
            System.out.println("i == " + i);
        }
        //System.out.println();
    }
    /*
    反编译之后的效果：
    public static int m(){
        int i = 100;
        int j = i;
        i++;
        return j;
        Exception exception;
        exception;
        i++;
        throw exception;
    }
     */
}
